package com.mars.push.core.channel.apns.dto;

import com.mars.push.api.common.DeviceType;
import com.mars.push.api.common.NoticeType;
import com.mars.push.api.common.PushMessageType;
import com.mars.push.api.common.PushType;
import com.mars.push.core.channel.PushMessage;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * @Author King
 * @create 2020/7/10 15:09
 */
@Data
public class ApnsPushMessage implements PushMessage {
    /**
     * 通知类型 0:tag 1:alias 2: 注册ID
     */
    private NoticeType noticeType;

    /**
     * 推送消息类型 0:通知栏 1:自定义消息 2: 两者同时
     */
    private PushMessageType pushMessageType;

    /**
     * 推送目标
     */
    private List<String> targets;

    /**
     * 通知栏消息
     */
    private String alert;

    /**
     * 通知栏标题
     */
    private String title;

    /**
     * url
     */
    private String url;

    /**
     * 透传消息
     */
    private Map<String, String> extras;

    /**
     * 自定义消息
     */
    private String customerMessage;

    /**
     * 自定义透传消息
     */
    private Map<String, String> customerMessageExtras;

    /**
     * 推送设备类型 0:android 1:Ios 2:all
     */
    private DeviceType deviceType;

    /**
     * 0:极光推送 1：fileBase 不填默认是极光
     */

    private PushType pushType;


    /**
     * IOS的声音文件
     */

    private String sound;

    private Integer badge;

    private String threadId;

    private Map<String, String> voIp;

    private String contentType;

    private int builderId;

    private String largeIcon;
}
